// service/newsInfo/newsInfo.js
import http from '../../utils/http'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    page: 1,
    dataList: [],
    status: 'loadmore', //loadmore加载更多 loading加载中 nomore没有更多了
    categories: [], // 分类列表
    currentCategory: 0, // 当前选中的分类ID
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getCategories()
  },

  // 获取分类列表
  getCategories() {
    http.post('article/index', {}, true).then(res => {
      if (res.code === 1) {
        this.setData({
          categories: res.data.categories,
          currentCategory: res.data.categories[0]?.id || 0
        })
        this.getDataList()
      }
    })
  },

  // 处理分类点击
  onCategoryTap(e) {
    const categoryId = e.currentTarget.dataset.id
    if (this.data.currentCategory === categoryId) return
    
    this.setData({
      currentCategory: categoryId,
      dataList: [], // 清空当前列表
      status: 'loadmore',
      page: 1 // 重置页码
    })
    
    this.getDataList()
  },

  getDataList() {
    const { page, dataList, status, currentCategory } = this.data
    if (status === 'nomore') return;
    this.setData({
      status: 'loading'
    })
    const data = {
      category_id: currentCategory,
      page: page,
      limit: 10,
    }
    http.post('article/index', data, true).then(res => {
      if (res.code === 1) {
        let list = dataList
        list.push(...res.data.data)
        let newStatus = res.data.last_page > page ? 'loadmore' : 'nomore'
        this.setData({
          dataList: list,
          status: newStatus
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    const { page, status } = this.data
    if (status === 'loading') return
    const newPage = page + 1
    this.setData({
      page: newPage,
    })
    this.getDataList()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})